/**
 * Created by zxr on 16/11/10.
 */

var http = require('http');
var url = require('url');
var paths = require('path').join;
var root = __dirname;
var fs = require('fs');
var items = [];
//var events = require('events').EventEmitter;
//var channel = new events();
var server = http.createServer(function(req,res){
	var fileUrl = url.parse(req.url).pathname;
	var file = paths(root,'../Agnode/static' + fileUrl);
	// 添加fs.stat() 获取该文件的信息 （是否修改  大小，。。可以做文件缓存）

	fs.stat(file,function(err,dataArr){
		if (err){
			console.log(err.Code);
			if ('ENOPEN' == err.Code){
				res.statusCode = 404;
				res.end('NOT find')
			} else {
				res.statusCode =500;
				res.end('Internal Server Error');
			}
		} else {
			console.log(dataArr);
			res.setHeader('Content-Length',dataArr.size);
			var stream = fs.createReadStream(file);
			var wit = fs.createWriteStream('../test.txt');
			stream.pipe(wit);
			stream.pipe(res);
			stream.on('error',function(err){
				res.statusCode = 500;
				res.end('Internal Server Error')
			});
		}


	});



	//var writeStream = fs.createWriteStream('./test.txt');
	//req.pipe(writeStream);
	//
	//stream.on('data',function(chunk){
	//			res.write(chunk);
	//});
	//stream.on('end',function(){
	//	res.end();
	//});
	//fs.readFile(file,function(err,data){
	//	if (err){
	//		console.log(err);
	//	} else {
	//		var body = data.toString();
	//		res.writeHead(200);
	//		res.end(body);
	//	}
	//});
	//req.on('request',function(){
	//	channel.emit('ready')
	//});
	//channel.on('ready',function(){
	//	console.log('requesr')
	//	var item = '';
	//	switch (req.method){
	//		case 'POST':
	//			req.on('data',function(data){
	//				res.setEncoding = 'utf-8';
	//				item += data
	//			});
	//			req.on('end',function(){
	//				items.push(item);
	//			});
	//			break;
	//		case "GET":
	//			var body = items.map(function(item,i){
	//				return i +'----' + item;
	//			}).join('\n');
	//			res.setHeader('Content-Lenght',Buffer.byteLength(body));
	//			console.log(body);
	//			res.end(body);
	//			break;
	//		case "DELETE":
	//			var path = url.parse(req.url).pathname;
	//			var i = parseInt(path.slice('1'),10);
	//			if (isNaN(i)){
	//				res.statusCode = 404;
	//				res.end('Invalid item id')
	//			} else if (!items[i]){
	//				res.statusCode = 404;
	//				res.end('Item not find')
	//			} else {
	//				items.splice(i,1);
	//				res.end('ok\n');
	//			}
	//	}
	//	console.log(item);
	//	console.log(items);
	//})
});

	server.listen('8888');